Large computer networks, such as Wide Area Networks (WAN) or Internet backbone systems often incorporate various types of network devices (nodes) and network protocols. For example, for Synchronous Optical Network (SONET) systems, most communication between transport nodes uses the OSI (Open System Interconnection) over the DCC routing protocol to establish and route traffic between two nodes.
The OSI environment includes data communication protocols to manage data movement among network nodes and uses application-oriented protocols to ensure that once the data is transferred, it can be understood and processed by an application process. Under the OSI model, functionally similar protocols are grouped into seven layers. These layers are: the physical layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer, with each layer providing services to the layer above it. The physical, link, and network layers are network dependent and use data communication protocols to control communication between two network nodes. The application, presentation, and session layers are application oriented and use protocols that let end user application interact using services offered by each node's local operating system. The transport layer uses services provided by the network dependent lower layers to provide the application oriented layers with a messaging service that is independent of the network.
The operating system software or application software that manages communication must be able to identify and manage the various entities that comprise the network elements, such as the network nodes and links. Typically, the network entities are represented as software objects that are managed and processed by the system software. A database is often used to list the various objects within a network. For example a control card within a node can be represented as an object for processing by the system software. For proper processing of network communications, objects must be properly identified and links among the various network objects must be maintained. Present network management software, however, generally does not feature adequate object management processes to allow the comprehensive management of network entities in an efficient manner. Oftentimes, complex code must be provided to synchronize tasks among various network objects. For example, using typical object-oriented language techniques, objects are managed by looking up every object in the system using a map or keyword system. This creates significant programming and processing overhead.
Another disadvantage associated with typical network management software is the lack of efficient persistency support. Practical networks are often subject to various exception and failure conditions. For example, a node or link may fail, causing a section of the network, or the entire network to be taken down. Recovery from such a failure often requires restoring a network to its condition prior to the failure. If such failure recovery is not performed in an efficient manner, significant amounts of transmitted data may be lost.